package com.zhisheng.demo03_Stream_Hello;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Stream;

/**
 * 创建者： 智晟全哥
 *
 *  练习map和concat方法
 *
 *  需求:
 *      有一个数组,里面存了多个学生的姓名,需要把学生姓名为两个字的且姓张的同学筛选出来,转成学生对象,
 *      有一个集合,里面存了多个学生的姓名,需要把姓王的同学且名字是3个字的同学筛选出来,转成学生对象并和上面的结果合并在一起后,收集起来
 *
 */
public class MyStream2 {
    public static void main(String[] args) {
        String[] arr = {"张三","张三丰","李四","张萌"};
        List<String> list = new ArrayList<>();
        Collections.addAll(list,"王二小","网三","王三","张无忌","王八");
        // 处理数组中的数据
        Stream<Student> stream1 = Arrays.stream(arr)
                .filter(s -> s.startsWith("张") && s.length() == 2)
                .map(s -> new Student(s));
        Stream<Student> stream2 = list.stream()
                .filter(s -> s.startsWith("王") && s.length() == 3)
                .map(Student::new);
        // 把上面的两个流对象合并成一个流对象,然后再收集起来
        List<Student> list1 = Stream.concat(stream1, stream2).toList();
        System.out.println(list1);

    }
}
